#pragma once
#include <string>
#include "Person.h"
using namespace std;

class Actor : public Person
{
private:
    string characterName;
    int creditsBillingPosition;

public:

    Actor()
    {
    }

    Actor(const Person& person, const string& character, int billingPosition ) :
      Person(person),
          characterName(character),
          creditsBillingPosition(billingPosition)
      {
      }

      virtual ~Actor(void){}

      Actor& operator = (const Actor& rhs)
      {
          if (this != &rhs)
          {
              Person::operator=(rhs);
              this->characterName = rhs.characterName;
              this->creditsBillingPosition = rhs.creditsBillingPosition;
          }
          return *this;
      }

      void SetPerson(const Person& person)
      {
          Person::operator=(person);          
      }

      void SetCharacterName(const string& name)
      {
          characterName = name;
      }

      void SetCreditsBillingPosition(int billingPosition)
      {
          creditsBillingPosition = billingPosition;
      }

      string CharacterName() const
      {
          return characterName;
      }

      bool HasValidCharacterName() const
      {
         return !characterName.empty();
      }

      int CreditsBillingPosition() const
      {
          return creditsBillingPosition;
      }
};

